class u(object):
    pass


a = u()
print(isinstance(a, u))
print(isinstance(a, object))
print(type(a))
print(issubclass(u, object))


class Admin(object):
    def run(self):
        print('run ing')


class dog(Admin):
    def run(self):
        print('doc run ing')

class cat(Admin):
    def run(self):
        print('cat runing ')

class k():
    def eact(self):
        print('www')
g= k()
g.eact()

# 实例属性优先级比类属性高，因此，它会屏蔽掉类的name属性
# 在编写程序的时候，千万不要把实例属性和类属性使用相同的名字，因为相同名称的实例属性将屏蔽掉类属性，但是当你删除实例属性后，再使用相同的名称，访问到的将是类属性。
# 给实例上绑定属性和方法，只在此实例上可以使用，在类上绑定属性和方法，此类的实例对象都可以访问，

# slots 限制属性
#@property装饰器就是负责把一个方法变成属性调用的
# MixIn 混合 多继承
# MixIn的目的就是给一个类增加多个功能，这样，在设计类的时候，我们优先考虑通过多重继承来组合多个MixIn的功能，而不是设计多层次的复杂的继承关系。
# 类似组合而不用深层次的继承树